// <copyright file="NumericAxis.cs" company="YUIAsp.Net">
// Copyright (c) 2009 All Right Reserved
// </copyright>
// <author>raul popescu</author>
// <email>dev@yuiasp.net</email>
// <date>2009-01-30</date>
// <summary>YUIAsp.Net File</summary>

namespace YUIAspNet
{
    /// <summary>
    /// Represents a char numeric axis.
    /// </summary>
    public class NumericAxis : ChartAxis
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="NumericAxis"/> class.
        /// </summary>
        public NumericAxis() : base("numeric")
        {
            SnapToUnits = true;
        }

        /// <summary>
        /// Gets or sets the minimum value to display.
        /// </summary>
        /// <value>The minimum value.</value>
        public float Minimum { get; set; }

        /// <summary>
        /// Gets or sets the maximum value to display.
        /// </summary>
        /// <value>The maximum value.</value>
        public float Maximum { get; set; }

        /// <summary>
        /// Gets or sets the major unit.
        /// </summary>
        /// <value>The major unit.</value>
        public int MajorUnit { get; set; }

        /// <summary>
        /// Gets or sets the minor unit.
        /// </summary>
        /// <value>The minor unit.</value>
        public int MinorUnit { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to snap to units.
        /// </summary>
        /// <value><c>true</c> to snap to units; otherwise, <c>false</c>.</value>
        public bool SnapToUnits { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to enable stacking.
        /// </summary>
        /// <value><c>true</c> to enable stacking; otherwise, <c>false</c>.</value>
        public bool EnableStacking { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether to always show zero.
        /// </summary>
        /// <value><c>true</c> to always show zero; otherwise, <c>false</c>.</value>
        public bool AlwaysShowZero { get; set; }

        /// <summary>
        /// Gets or sets the scale.
        /// </summary>
        /// <value>The scale.</value>
        public ScaleMode Scale { get; set; }

        /// <summary>
        /// Gets or sets the format.
        /// </summary>
        /// <value>The format.</value>
        public string Format { get; set; }
    }

    /// <summary>
    /// Axis scale mode
    /// </summary>
    public enum ScaleMode 
    {
        /// <summary>
        /// Defines a linear scale mode
        /// </summary>
        Linear,
        /// <summary>
        /// Defines a logarithmic scale mode
        /// </summary>
        Logarithmic
    }
}
